import org.apache.ws.commons.util.Base64;

import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Arrays;

public class StringUtils {
    /**
     * Обратное преобразование из xml-формата специальных символов
     *
     * @param s исходная строка
     * @return расшифрованная строка
     */
    public static String htmlspecialchars_decode(String s) {
        s = s.replaceAll("&quot;", "\"");
        s = s.replaceAll("&lt;", "<");
        s = s.replaceAll("&gt;", ">");
        s = s.replaceAll("&nbsp;", " ");
        s = s.replaceAll("&amp;", "&");
        return s;
    }


    public static String implode(String glue, ArrayList<String> lines) {
        String res = "";
        if (lines.size() > 0) {
            res += lines.get(0);
            for (int i = 1; i < lines.size(); i++)
                res += glue + lines.get(i);
        }
        return res;
    }

    /**
     * Вычисление md5 суммы от строки
     *
     * @param str исходная строка
     * @return хэш-сумма строки
     */
    public static String md5(String str) {
        MessageDigest md5 ;
        StringBuffer hexString = new StringBuffer();
        try {
            md5 = MessageDigest.getInstance("md5");
            md5.reset();
            md5.update(str.getBytes());
            return new BigInteger(1, md5.digest()).toString(16);
        }
        catch (NoSuchAlgorithmException e) {
            return e.toString();
        }
    }
}